Release notes
2025r12
Fix for storyArcTitle in YAML
Previously, the storyArcTitle attribute was changed to storyArc in the YAML of the content API. However, the new naming was not updated in the system, meaning it still expected storyArcTitle for POST and PUT calls and returned storyArcTitle in the GET calls.
This issue has been fixed in the version. The attribute has been changed to storyArcTitle in the YAML to reflect the actual behaviour of the system. The YAML has been updated for these changes. The latest version can be retrieved by using the GET /api call.
2025r10
Point in time custom attributes in business API
Custom attributes are supported in the content, copyright, MAM, on-demand schedule, person and trailer API.
Previously, the following types were available:
-
Boolean
-
Date
-
Decimal number
-
Drop-down list
-
Drop-down list for multiselection
-
Duration
-
Integer
-
Reference
-
String
-
Text
-
Web
From this version, custom attributes of the type Point in time can also be used in these APIs.
In the GET calls, such as GET /program, the following suffixes can be added to the call to either get only specified attributes in the response or all custom attributes of the supported types:
-
?customAttributes=attributeName,attributeName -
?customAttributes=allCustomAttributes
For each custom attribute, the attribute name, value, and type will be given. The new type will be included in the response as follows:
...
"customAttributes": [
{
"attributeName": "embargoTimestamp",
"value": "2025-12-14T20:00:00Z",
"type": "Point in time field"
}
]
...
The Point in time custom attribute will be considered as a local timestamp in the Mediagenix Base platform in the default timezone, which is Brussels. When a GET call is done, the timestamp of the custom attribute is converted to UTC time.
For example, the Embargo timestamp from the example is 14/12/25 21:00:00. This is considered in the default timezone, Belgium, which is currently on UTC+1. When doing the GET call, the timestamp is returned as 2025-12-14T20:00:00Z.
In POST or PUT calls, an array of custom attributes needs to be provided with their attribute name and value. The new type should be specified as follows:
"customAttributes": {
"embargoTimestamp": "2025-12-14T20:00:00Z"
}
The timestamp is converted from UTC to the default time zone before being saved in Mediagenix Base platform. This custom attribute type should follow the ISO 8601 format, meaning YYYY-MM-DDTHH:MM:SSZ.
For example, if 2025-12-14T20:00:00Z is sent, this will be saved as 21:00:00.
If the correct format is not used, the following error message is returned:
{
"statusCode": "422",
"message": "Operation cannot be completed due to violations",
"timestamp": "2025-12-02T09:23:41Z",
"concept": "Program",
"id": "9502146329",
"errors": [
{
"errorCode": "CORE-00002",
"description": "Parsing error. Use ISO 8601 format",
"data": [
null
]
}
]
}
API developers
The YAMLs will be updated in an upcoming version. Until then, the changes above can already be entered manually.
Fix for storyArcTitle in contentCollection calls
Previously, a fix was done for the storyArcTitle attribute in the content API. However, the attribute still appeared when using the /contentCollection calls, while it was not intended.
This issue has been fixed in this version. The attribute has been removed from the calls.
2025r9
Fix for incorrect payload
Previously, sending a malformed REST API payload to the content or MAM API (e.g., with an object instead of an array for certain fields like contentWarnings) would cause the business API interface service to crash.
Now, if a REST call with a payload with incorrectly placed brackets is sent, the system will return a 400 Bad Request error instead.
2025r8
Story arc only on episode and program calls in content API YAML
In version 2025r6, the story arc title was introduced on content. It was also added to the content API. However, due to an error, it was added to most content calls, while it is not relevant for all content.
From this version, the storyArcTitle attribute has been changed to storyArc in the YAML.
Additionally, the attribute only remains in the YAML for the following calls:
-
Program
-
POST /programs -
PUT /programs/{contentId} -
GET /programs/{contentId} -
POST /programs/{contentId}/versions/{versionId}
-
-
Episode
-
POST /episodes -
PUT /episodes/{contentId} -
GET /episodes/{contentId} -
POST /episodes/{contentId}/versions/{versionId}
-
However, the new naming was not updated in the system, meaning it still
-
expects
storyArcTitlefor POST and PUT calls; -
returns
storyArcTitlein the GET calls.
This will be corrected in an upcoming version.
2025r6
Machine in content API
In 2025r4, the calculation of machines was improved. This introduced the machine property also on products. Previously, these changes were not yet present in the content API.
From this version, the machine attribute has been added to the following calls:
| Concept | Calls |
|---|---|
| Products |
GET /products/{contentId} |
| Programs |
|
| Series |
|
| Seasons |
|
| Episodes |
|
When the parameters for version and series to episode inheritance are added to the URL of the applicable calls, the machine is also inherited.
An example of part of the body of the POST /programs call with the machine attribute:
{
"contentId": "143048527",
"contentType": "program",
"title": "AVENGERS: ENDGAME",
"duration": "02:43:00",
"productCode": "MCU25-",
"productionCompanies": [],
"type": "Production",
"department": "Movies",
...
"dvdReleaseDate": null,
"dvdReleaseDateForeign": "2020-04-01",
"sigmaId": "42653899-4d52-4046-b531-ec5fc544be74",
"targetGroup": null,
"machine": "Online",
"masterVersionId": null,
...
}
The attribute uses the API reference of the value in the Machine drop-down list. A GET /machines call has been added to retrieve all the active values and their references.
An example of the response:
[
{
"id": "IE",
"name": "Ireland machine"
},
{
"id": "BE",
"name": "Belgian machine"
}
]
API developers
The YAML has been updated for these changes. The latest version can be retrieved by using the GET /api call.
At line 2646, the /machines path was added.
At line 2813, the machine property was added to the Content schema.
At line 3013, the machine property was added to the ContentForGet schema.
For easier viewing, the YAMLs can also be compared here: TextCompare
Story arc title in content API
In this version, the story arc title has been added to products.
Since an external system might provide this information, the story arc title should be editable for external systems. Therefore, it has been added to the content API as well.
The storyArcTitle attribute has been added to the following calls:
-
Program
-
POST -
PUT programs/{contentId} -
GET programs/{contentId} -
POST /programs/{contentId}/versions/{versionId}
-
-
Episode
-
POST -
PUT /episodes/{contentId} -
GET /episodes/{contentId} -
POST /episodes/{contentId}/versions/{versionId}
-
-
Content collections
-
POST -
PUT /contentCollections/{contentId} -
GET /contentCollections/{contentId}
-
It allows an external system to enter a value in the Story arc title field.
An example of the body of the GET /episodes call:
{
"contentId": "141758527",
"contentType": "episode",
"title": "Collision Course (Part I)",
"duration": "00:42:00",
"productCode": "P8",
"productionCompanies": [
"140963512"
],
"storyArcTitle": "Collision Course",
...
}
API developers
The YAML has been updated for these changes. The latest version can be retrieved by using the GET /api call.
However, due to an error, the storyArcTitle attribute was added to most content calls instead of only programs, episodes and content collections. It will be present in the YAML but will be ignored for season and series.
At line 2773, the storyArcTitle property was added to the Content schema.
At line 3449, the storyArcTitle property was added to the ContentForGet schema.
For easier viewing, the YAMLs can also be compared here: TextCompare
2025r5
Order number for cast members in content API
On content, cast members can be defined in the CAST list, where they have a number to determine the order.
Previously, this order number was not part of the cast array in the content API. The items in the array were also not sorted according to this number when using a GET call, but based on OID. In a POST or PUT call, the order of the list was implicitly matched to the order number when created.
From this version, the number attribute has been added to the cast array of the following calls:
-
GET program/episode/season/series/versions/contentCollections -
POST/PUT program/episode/season/series/versions/contentCollections
It corresponds to the order number of each cast member.
An example of the GET /programs call:
{...
"cast": [
{
"personId": "1336589517",
"castFunction": "Actor",
"castType": "actors",
"role": null,
"number": 1
},
{
"personId": "9501482769",
"castFunction": "Producer",
"castType": null,
"role": null,
"number": 2
}
],
"originalLanguage": "TestPSILanguage2",
"contentTargetGroup": "TestCategorySecondary2",
"content": "TestPSIContents1",
...}
In the GET calls, the members in the cast array are now sorted on this number.
In the POST and PUT calls, if the number is
-
not provided in the call, the cast list is sorted based on the order in the
castarray, meaning the first cast item will get order number 1, the second 2… -
provided, the cast members are ordered based on the defined number. The numbers do not have to be in order in the call, meaning a member with number 2 can come before a member with 1 in the array, and they will still be ordered correctly.
-
However, no numbers can be skipped in the array, meaning 1, 2, 4 will not be accepted. If a number is skipped, the following error is returned:
-
{
"statusCode": "422",
"message": "Operation cannot be completed due to violations",
"timestamp": "2025-06-10T14:00:39Z",
"concept": "Program",
"id": "143048527",
"errors": [
{
"errorCode": "5672",
"description": "The sequence number 'No.' should be between 1 and 2.",
"data": [
"No.",
"2"
]
}
]
}
-
If a number is included twice in the array, the following error is returned:
{
"statusCode": "422",
"message": "Operation cannot be completed due to violations",
"timestamp": "2025-06-10T13:58:43Z",
"concept": "Program",
"id": "143048527",
"errors": [
{
"errorCode": "615",
"description": "The combination of following fields has to be unique: No., Product.",
"data": [
"No., Product"
]
}
]
}
API developers
The YAML has been updated for these changes. The latest version can be retrieved by using the GET /api call.
The following has changed:
At line 3565, the number property was added to the CastMember schema.
For easier viewing, the YAMLs can also be compared here: TextCompare
2025r3
Target group in content API
On a product, it is possible to define the target group related to the buying order. It was previously not available in the content API.
From this version, the targetGroup attribute has been added to the following calls:
-
GET /products/{contentId} -
Program calls:
POST /programs-
PUT /programs/{contentId} -
GET /programs/{contentId} -
POST/programs/{contentId}/versions/{versionId}
-
Series calls:
-
POST /series -
PUT /series/{contentId} -
GET /series/{contentId}
-
-
Season calls:
-
POST /seasons -
PUT /seasons/{contentId} -
GET /seasons/{contentId} -
POST/seasons/{contentId}/versions/{versionId}
-
-
Episode calls:
-
POST /episodes -
PUT /episodes/{contentId} -
GET /episodes/{contentId} -
POST/episodes/{contentId}/versions/{versionId}
-
-
Content collections:
-
POST /contentCollections -
PUT /contentCollections/{contentId} -
GET /contentCollections/{contentId}
-
An example of the GET /products call:
{
"contentId": "1405730527",
"contentType": "program",
"title": "The Souvenir",
"duration": "02:00:00",
"productCode": "Kine6",
"productionCompanies": [],
"type": null,
"status": null,
"remarks": null,
"pressSheets": [],
"cast": [],
"originalLanguage": null,
"contentTargetGroup": null,
...
"targetGroup": "A18-40",
"masterVersionId": null,
...
}
A GET /targetGroups call was already available to get the values of the TargetGroup drop-down list.
API developers
The YAML has been updated for these changes. The latest version can be retrieved by using the GET /api call.
The following has changed:
At line 2917, the targetGroup property was added to the properties of the Content schema.
At line 3116, the targetGroup property was added to the properties of the ContentForGet schema.